package manager;


import org.hibernate.Session;

import beans.Usuarios;

import manager.HibernateUtil;

import forms.loginForm;
import forms.registroForm;

import java.util.*;



public class UsuarioManager {

	//Tipos de usuario:
	// 1. Admin
	// 2. Cliente
	// 3. Empleado
	public static List leerUsuarios(loginForm form) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        List result = null;
        result = session.createQuery("FROM Usuarios WHERE login LIKE '" +form.getUsuario() +"' AND pwd LIKE '" +form.getPwd() +"'").list();
        session.getTransaction().commit();
        return result;
    }

	public static List leerUsuarios(registroForm form) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        List result = null;
        result = session.createQuery("FROM Usuarios WHERE login LIKE '" +form.getLogin() +"' AND pwd LIKE '" +form.getPwd() +"'").list();
        session.getTransaction().commit();
        return result;
    }
	
	public static void guardarUsuario(registroForm form) {
		Usuarios Usuario = new Usuarios();
		
		//Se introducen en el bean los datos provenientes del form
		Usuario.setLogin(form.getLogin());
		Usuario.setPwd(form.getPwd());
		Usuario.setTipoUsuario(form.getTipoUsuario());
		//Si es un empleado se introduce un valor a tipoEmpleado, si no 0
		if(form.getTipoUsuario() == 3){
			Usuario.setTipoEmpleado(form.getTipoEmpleado());
		}
		else{
			Usuario.setTipoEmpleado(0);
		}
		Usuario.setNombre(form.getNombre());
		Usuario.setApellido1(form.getApellido1());
		Usuario.setApellido2(form.getApellido2());
		Usuario.setEmail(form.getEmail());
		if( form.getDireccion() != null )
			Usuario.setDireccion(form.getDireccion());
		if( form.getPoblacion() != null )
			Usuario.setPoblacion(form.getPoblacion());
		if( form.getProvincia() != null )
			Usuario.setProvincia(form.getProvincia());
		Usuario.setTlf(form.getTlf());
		if( form.getTlfMovil() != null )
			Usuario.setTlfMovil(form.getTlfMovil());
		Usuario.setDni(form.getDni());
		Usuario.setFechaNacimiento(form.getFechaNacimiento());
		Usuario.setSeguridadSocial(form.getSeguridadSocial());
		
		//Se introduce en la base de datos
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
        session.save(Usuario);
        session.getTransaction().commit();
		
	}

}
